package com.edu.dao;

//import com.edu.entity.QueryParam;
import com.edu.entity.User;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

public interface UserMapper {
    //方法-01
    //1.根据用户名获取用户（登录时使用）
    //2.SpringSecrutity调用
    //3.SQL实现在UserMapper.xml文件中
    User getUserByName(String username);
    List<User> queryAll();

    /*
     * 方法-03
     * 1)获取用户列表 (用户模块使用) 【...】
     * 2)UserServiceImpl调用
     * 3)SQL实现在 UserMapper.xml文件中。
     */
    List<User> queryList(Map data);

    String FIELDS = "id,username,password,email,sex,tel,headImg,type,createTime";
    String VALUES = "#{id},#{username},#{password},#{email},#{sex},#{tel},#{headImg},#{type},now()";
    @Insert("INSERT INTO t_user("+ FIELDS +") VALUES("+ VALUES +")")
    @Options(keyProperty="id",keyColumn="id",useGeneratedKeys=true)
    int addUser(User user);


    @Update("update t_user set headImg=#{headImg} where id=#{id}")
    int updateUserImage(User user);

    String UPDATE_FIELDS = "email=#{email},sex=#{sex},tel=#{tel}";
    @Update("update t_user set "+ UPDATE_FIELDS +" where id=#{id}")
    int updateUser(User user);

    @Delete("delete from t_user where id=#{id}")
    int deleteUser(Integer id);

    int batchDeleteUser(@Param("ids") Integer[] ids);

}
